home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Compendium Deluxe 2
/
LSD and 17bit Compendium Deluxe - Volume II.iso
/
a
/
prog
/
misc
/
gfront11.lha
/
GUIFront
/
Demos
/
Source
/
GetAlt.c
< prev
next >
Wrap
C/C++ Source or Header
|
1994-11-01
|
5KB
|
188 lines
/* getalt.c - Show off GetAlt kind and automatic ASL requester feature
*
* This is a GUIFront example GUI. To build an example, compile and link this
* file with Generic.o (also supplied).
* Everything prefixed with DEMO_ is exported to Generic.o.
*/
#include <libraries/guifront.h>
#include <libraries/asl.h>
/* First, some Gadget ID's */
enum
{
GID_FONT,
GID_GETFONT,
GID_FILE,
GID_GETFILE,
GID_DIR,
GID_GETDIR,
GID_SCREENMODE,
GID_GETSCREENMODE,
GID_OTHER,
GID_GETOTHER,
GID_OK,
};
/* Some data and tag items we'll be needing later */
/* First, some general tags for the ASL requesters. These aren't strictly
* required (the requesters will open without them), but a title-less
* file requester isn't particulary user friendly.
*/
static const struct TagItem asltags[] =
{
{ASL_OKText, "Click me!"},
{ASL_Hail, "Automatic ASL requester"},
{TAG_DONE}
};
static const struct TagItem txtags[] =
{
{GTTX_Border, TRUE},
{TAG_DONE},
};
static const struct TagItem getfonttags[] =
{
{ALT_Image, ALTI_GetFont},
{ALT_AslRequester, TRUE},
{ALT_AslTags, asltags},
{TAG_DONE},
};
static const struct TagItem getfiletags[] =
{
{ALT_Image, ALTI_GetFile},
{ALT_AslRequester, TRUE},
{ALT_AslTags, asltags},
{TAG_DONE},
};
static const struct TagItem getdirtags[] =
{
{ALT_Image, ALTI_GetDir},
{ALT_AslRequester, TRUE},
{ALT_AslTags, asltags},
{TAG_DONE},
};
static const struct TagItem getscrmodetags[] =
{
{ALT_Image, ALTI_GetScreenMode},
{ALT_AslTags, asltags},
{ALT_AslRequester, TRUE},
{TAG_DONE},
};
static const struct TagItem getothertags[] =
{
{ALT_Image, ALTI_GetMisc},
{ALT_AslTags, asltags},
{ALT_AslRequester, TRUE},
{TAG_DONE},
};
/* Now, the GadgetSpec's we'll be needing for this GUI */
static GadgetSpec gadgetspecs[] =
{
{TEXT_KIND, 25,0,{0,0,0,0, "File:", NULL, GID_FILE, PLACETEXT_LEFT}, txtags, GS_DefaultTags},
{GETALT_KIND, 0,0,{0,0,0,0, NULL, NULL, GID_GETFILE, PLACETEXT_IN}, getfiletags, GS_DefaultTags},
{TEXT_KIND, 25,0,{0,0,0,0, "Font:", NULL, GID_FONT, PLACETEXT_LEFT}, txtags, GS_DefaultTags},
{GETALT_KIND, 0,0,{0,0,0,0, NULL, NULL, GID_GETFONT, PLACETEXT_IN}, getfonttags, GS_DefaultTags},
{TEXT_KIND, 25,0,{0,0,0,0, "Dir:", NULL, GID_DIR, PLACETEXT_LEFT}, txtags, GS_DefaultTags},
{GETALT_KIND, 0,0,{0,0,0,0, NULL, NULL, GID_GETDIR, PLACETEXT_IN}, getdirtags, GS_DefaultTags},
{TEXT_KIND, 25,0,{0,0,0,0, "Screenmode:", NULL, GID_SCREENMODE, PLACETEXT_LEFT}, txtags, GS_DefaultTags},
{GETALT_KIND, 0,0,{0,0,0,0, NULL, NULL, GID_GETSCREENMODE, PLACETEXT_IN}, getscrmodetags, GS_DefaultTags},
{TEXT_KIND, 25,0,{0,0,0,0, "Other:", NULL, GID_OTHER, PLACETEXT_LEFT}, txtags, GS_DefaultTags},
{GETALT_KIND, 0,0,{0,0,0,0, NULL, NULL, GID_GETOTHER, PLACETEXT_IN}, getothertags, GS_DefaultTags},
{BUTTON_KIND, 0,0,{0,0,0,0, " Ok ", NULL, GID_OK, PLACETEXT_IN}, NULL, GS_DefaultTags | GS_BoldLabel},
};
/* Now, we group all of these GadgetSpecs into an array of pointers, so the
* layout engine can locate gadgets merely by their Gadget IDs.
*/
GadgetSpec *DEMO_GadgetSpecList[] =
{
&gadgetspecs[0], &gadgetspecs[1], &gadgetspecs[2], &gadgetspecs[2],
&gadgetspecs[3], &gadgetspecs[4], &gadgetspecs[5], &gadgetspecs[6],
&gadgetspecs[7], &gadgetspecs[8], &gadgetspecs[9], &gadgetspecs[10],
NULL,
};
/* Finally, the layout tag list itself. This is where most of the work is
* done. This list completely describes how the above gadgets are arranged
* in groups in the GUI.
*/
ULONG DEMO_LayoutList[] =
{
GUIL_Flags, GUILF_PropShare | GUILF_EqualWidth,
GUIL_VertGroup, 1,
GUIL_Flags, GUILF_PropShare | GUILF_EqualWidth | GUILF_LabelAlign,
GUIL_FrameType, GUILFT_Recess,
GUIL_HorizGroup, 0,
GUIL_Flags, GUILF_PropShare | GUILF_EqualHeight,
GUIL_GadgetSpecID, GID_FILE,
GUIL_GadgetSpecID, GID_GETFILE,
TAG_DONE,
GUIL_HorizGroup, 0,
GUIL_Flags, GUILF_PropShare | GUILF_EqualHeight,
GUIL_GadgetSpecID, GID_DIR,
GUIL_GadgetSpecID, GID_GETDIR,
TAG_DONE,
GUIL_HorizGroup, 0,
GUIL_Flags, GUILF_PropShare | GUILF_EqualHeight,
GUIL_GadgetSpecID, GID_FONT,
GUIL_GadgetSpecID, GID_GETFONT,
TAG_DONE,
GUIL_HorizGroup, 0,
GUIL_Flags, GUILF_PropShare | GUILF_EqualHeight,
GUIL_GadgetSpecID, GID_SCREENMODE,
GUIL_GadgetSpecID, GID_GETSCREENMODE,
TAG_DONE,
GUIL_HorizGroup, 0,
GUIL_Flags, GUILF_PropShare | GUILF_EqualHeight,
GUIL_GadgetSpecID, GID_OTHER,
GUIL_GadgetSpecID, GID_GETOTHER,
TAG_DONE,
TAG_DONE,
GUIL_HorizGroup, 1,
GUIL_Flags, GUILF_EqualSize,
GUIL_GadgetSpecID, GID_OK,
TAG_DONE,
TAG_DONE,
};
/* Obligatory version tag */
static const char ver[] = "$VER: GetAlt 1.0 " __AMIGADATE__;
/* Now, some globals used by Generic.o during the call to GF_CreateGUIA() */
int DEMO_InitialOrientation = GUIL_VertGroup;
STRPTR DEMO_WindowTitle = "GetAlt Demo GUI";
STRPTR DEMO_AppID = "GetAltDemo";
STRPTR DEMO_Version = "1.0",
DEMO_LongDesc = "Demo program - GetAlt and Automatic ASL Requesters",
DEMO_Author = "Michael Berg",
DEMO_Date = __AMIGADATE__;
BOOL DEMO_Backfill = TRUE;